package simulatie.models;

import javax.media.opengl.GL;
import javax.vecmath.Vector3f;

/** 
 * De Kraanklasse
 */
	public class Kraan extends Model {
	private Vector3f bestemming;
	private boolean heeftBestemming = false;
	private ModelReader modelReader;
	
/**
 * Constructor van de kraan, zet de kraan op een standaard positie
 */
	public Kraan() { 
		this(new Vector3f(100,0.6f,0));  //Start positie	
	}
	
/**
 * Constructor van de kraan met een meegegeven positie
 * @param position
 */	
	public Kraan(Vector3f position) {
		setColor(0, 128, 255);
		this.position = position;
		this.scale = new Vector3f(2f,2f,2f);
		modelReader = new ModelReader("D:\\Projects\\Java\\Containing\\Containing\\res\\kraan.cpp");
		setFaceIndicies();
		setVertices();
		setNormals();
		setTexCoords();
		
	}
	
/**
 * geef het model weer met de gewenste eigenschappen
 */
	public void displayModel(GL gl) {
		this.gl = gl;
		if (heeftBestemming) {
			beweegKraan();
		}
		drawVertices();
		
	}

/**
 * Geef de kraan een bestemming
 * @param bestemming - Vector3f met de bestemming
 */
	public void setBestemming (Vector3f bestemming) {
		this.bestemming = bestemming;
		heeftBestemming = true;
	}
	
/**
 * Beweeg de kraan als een bestemming is gegeven
 */
	public void beweegKraan () {
		if (position.getX() < bestemming.getX()) {
			setPosition(position.getX()+0.5f,position.getY() , position.getZ());
		}
		if (position.getZ() < bestemming.getZ()) {
			setPosition(position.getX(),position.getY() , position.getZ()+0.5f);
		}		
	}

//	public void beweegKraan (float x, float y, float z) {
//	}

/**
 * Haal de FaceIndicies uit de modelreader 
 */
	protected void setFaceIndicies() {
		faceIndicies = modelReader.getFaceIndicies();		
	}

/**
 * Haal de Normals uit de modelreader 
 */
	protected void setNormals() {
		normals = modelReader.getNormals();		
	}

/**
 * Haal de TexCoords uit de modelreader 
 */
	protected void setTexCoords() {
		 texCoords = modelReader.getTexCoords();		
	}

/**
 * Haal de Vertices uit de modelreader 
 */
	protected void setVertices() {
		 vertices = modelReader.getVertices();		
	}
}

